Database image matching using machine learning with output estimation

ABSTRACT

The present disclosure relates to systems, methods, and computer readable media for processing an image including a vehicle using machine learning. The systems can include determining a location of the client device. The systems can further include receiving a first image of a vehicle from an image sensor of the client device and matching, using machine learning, the first image to one or more images of vehicles in a vehicle database to identify the vehicle. The vehicle database can list vehicles located at the determined location of the client device and images of the vehicles. The systems can include retrieving vehicle information from the vehicle database, based on the identified vehicle, and obtaining comparison information based at least in part on the vehicle information. The systems can include estimating a quote for the vehicle based on the comparison information and transmitting the estimated quote for display on the client device.

TECHNICAL FIELD

The present disclosure relates generally to the field of image analysisusing machine learning algorithms. More specifically, and withoutlimitation, this disclosure relates to systems and methods for usingmachine learning algorithms to identify vehicles from images andgenerate real-time quotes.

BACKGROUND

Customers have limited methods for receiving accurate quotes and pricingwhen attempting to finance a vehicle purchase. For example, in a typicalmethod, a customer visits an automobile dealership and selects a vehicleto purchase. After negotiating the vehicle price, the customer thenfills out a lengthy credit application at the dealership and providesany information needed to complete the financing. After receivingdealership credit approval, the customer signs a contract reflecting thepurchase and financing terms, such as the monthly payments and AnnualPercentage Rate (APR).

Alternatively, some customers apply to prequalify for a loan beforechoosing a vehicle. Here, the customer fills out an application andprovides information relating to their income, employment, residence,desired financing amount, and other required personal details. If thecustomer's application is approved, the lender provides an estimate ofthe financing details and a maximum amount approved for the vehiclepurchase. The customer visits an automobile dealership with the approvedpre-qualification and selects a vehicle to purchase. The customer thenfills out another credit application and provides any furtherinformation required to complete the financing. After receivingdealership credit approval, the customer signs a contract reflecting thepurchase and financing terms.

Such known techniques for auto financing suffer from multiple drawbacks,however. For example, customers must endure a lengthy, manual, andmulti-step process to secure financing for a vehicle. Attempting to useexisting pre-qualification methods can provide inaccurate quotes andfinancing terms. Furthermore, actual vehicle information may not beavailable at the time the customer seeks financing. Moreover, attemptingto obtain more accurate pricing quotes by choosing a specific vehiclebefore seeking financing can limit the ability of a customer to changetheir minds. For example, should the customer decide at the dealershipto purchase a different vehicle, a common event, the customer may needto reapply for financing for this new vehicle.

A need therefore exists for systems and methods for providing on-demandauto financing quotes for specified vehicles in real time. The disclosedsystems and methods provide a technological solution to at least thisexisting problem.

SUMMARY

Embodiments of the present disclosure use machine learning systems andmethods to provide on-demand auto financing quotes for specifiedvehicles in real time. The resulting quotes can be displayed usingaugmented reality systems and methods on a device of the user. In thismanner, the disclosed embodiments can provide a marked improvement overthe subjective, manual, and multi-step processes known in the prior art.

The disclosed embodiments include a system for processing an imageincluding a vehicle using machine learning. The system can include aprocessor in communication with a client device and a storage mediumstoring instructions. When executed, the instructions can cause theprocessor to perform operations. The operations can include determininga location of the client device. The operations can further includereceiving a first image of a vehicle from an image sensor of the clientdevice. The operations can additionally include matching, using machinelearning, the first image to one or more images of vehicles in a vehicledatabase to identify the vehicle. The vehicle database can list vehicleslocated at the determined location of the client device, and can includeimages of the vehicles. The operations can further include retrievingvehicle information from the vehicle database, based on the identifiedvehicle. The operations can additionally include obtaining comparisoninformation based at least in part on the vehicle information andestimating a quote for the vehicle based on the comparison information.The operations can include transmitting the estimated quote for displayon the client device.

In some embodiments, the location of the client device can be mapped toa vehicle dealership. The vehicle database can include a listing of avehicle inventory at the vehicle dealership. In various embodiments, thematching can use a convolutional neural network.

In some embodiments, the operations can further comprise determiningthat the first image is below an acceptability threshold; andtransmitting information for display on the client device. Thisinformation can include an error message or a guiding line for obtaininga second image of the vehicle.

In some embodiments, obtaining comparison information can furthercomprise retrieving pricing information from a comparison resource basedat least in part on the vehicle information. The pricing information canbe retrieved based at least in part on personal information of the user.In some aspects, estimating the quote for the vehicle comprisescalculating statistics of the pricing information. In various aspects,estimating the quote for the vehicle comprises receiving selections ormodifications of financing terms and calculating statistics of thepricing information based on the received selections or modifications ofthe financing terms.

The disclosed embodiments include a computer-implemented method forprocessing an image including a vehicle using machine learning. Themethod can include determining a location of the client device andreceiving a first image of a vehicle from an image sensor of the clientdevice. The method can further include matching, using machine learning,the first image to one or more images of vehicles in a vehicle databaseto identify the vehicle. The vehicle database can list vehicles locatedat the determined location of the client device and can include imagesof the vehicles. The method can include retrieving vehicle informationfrom the vehicle database, based on the identified vehicle. The methodcan include obtaining comparison information based at least in part onthe vehicle information. The method can include estimating a quote forthe vehicle based on the comparison information. The method can includetransmitting the estimated quote for display on the client device

In some embodiments, the location of the client device can be mapped toa vehicle dealership. The database can include a listing of a vehicleinventory at the vehicle dealership. In some embodiments, the matchingcan use a convolutional neural network. In various embodiments, themethod can further include determining that the first image is below anacceptability threshold, and transmitting information for display on theclient device. The information can include an error message or a guidingline for obtaining a second image of the vehicle.

In some embodiments, obtaining comparison information can furtherinclude retrieving pricing information from a comparison resource basedat least in part on the vehicle information. The pricing information canbe retrieved based at least in part on personal information of the user.In some embodiments, estimating the quote for the vehicle can includecalculating statistics of the pricing information. Estimating the quotefor the vehicle can include receiving selections or modifications offinancing terms and calculating statistics of the pricing informationbased on the received selections or modifications of the financingterms.

In some embodiments, the comparison resource can store pricinginformation, vehicle-related information, and personal information, andwherein the quote for the vehicle is estimated based on pricinginformation, vehicle-related information, and personal informationretrieved from the comparison resource.

The disclosed embodiments include a non-transitory computer-readablemedium. The non-transitory computer readable medium can storeinstructions. When executed by a processor, the instructions can causethe processor to operate a computer system for processing an imageincluding a vehicle using machine learning. The operations can includedetermining a location of the client device and receiving a first imageof a vehicle from an image sensor of the client device. The operationscan further include matching, using machine learning, the first image toone or more images of vehicles in a vehicle database to identify thevehicle. The vehicle database can list vehicles located at thedetermined location of the client device. The vehicle database caninclude images of the vehicles. The operations can include retrievingvehicle information from the vehicle database, based on the identifiedvehicle. The operations can also include obtaining comparisoninformation based at least in part on the vehicle information. Theoperations can include estimating a quote for the vehicle based on thecomparison information. The operations can include transmitting theestimated quote for display on the client device.

Additional objects and advantages of the present disclosure will be setforth in part in the following detailed description, and in part will beobvious from the description, or may be learned by practice of thepresent disclosure. The objects and advantages of the present disclosurewill be realized and attained by means of the elements and combinationsparticularly pointed out in the appended claims. It is to be understoodthat the foregoing general description and the following detaileddescription are exemplary and explanatory only, and are not restrictiveof the disclosed embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which comprise a part of this specification,illustrate several embodiments and, together with the description, serveto explain the disclosed principles. In the drawings:

FIG. 1 is a block diagram of an exemplary system, in accordance withdisclosed embodiments.

FIG. 2 is a block diagram of an exemplary client device, in accordancewith disclosed embodiments.

FIG. 3 is a block diagram of an exemplary database, in accordance withdisclosed embodiments.

FIG. 4 is a flowchart of an exemplary method for generating a real-timequote for a vehicle, consistent with embodiments of the presentdisclosure.

FIGS. 5A-5C are flowcharts of exemplary methods for identifying vehicleattributes based on an image, consistent with embodiments of the presentdisclosure.

FIG. 6 is a flowchart of an exemplary method for identifying vehicleattributes using two convolutional neural networks, consistent withembodiments of the present disclosure.

FIG. 7 is a flowchart of an exemplary method for comparing images usinga convolutional neural network, consistent with embodiments of thepresent disclosure.

FIG. 8 is a flowchart of an exemplary method for generating pricinginformation, consistent with embodiments of the present disclosure.

FIG. 9 is a flowchart of an exemplary method for generating a real-timequote for a vehicle, consistent with embodiments of the presentdisclosure.

FIG. 10 is a flowchart of another exemplary method for generating areal-time quote for a vehicle, consistent with embodiments of thepresent disclosure.

FIG. 11 is a flowchart of a third exemplary method for generating areal-time quote for a vehicle, consistent with embodiments of thepresent disclosure.

FIG. 12 is a flowchart of a fourth exemplary method for generating areal-time quote for a vehicle, consistent with embodiments of thepresent disclosure.

FIG. 13 is an illustration of a client device capturing an image of avehicle, in accordance with disclosed embodiments.

FIG. 14 is a group of exemplary graphical user interfaces capturingvehicle images, in accordance with disclosed embodiments.

FIG. 15 is an exemplary flow chart illustrating an identificationprocess, in accordance with disclosed embodiments.

FIG. 16 is an exemplary flow chart illustrating a training data setgeneration process, in accordance with disclosed embodiments.

FIG. 17 is an exemplary flow chart illustrating a process for generatingan identification model, in accordance with disclosed embodiments.

FIG. 18 is an exemplary flow chart illustrating a process for handling arequest for identification.

DETAILED DESCRIPTION

The disclosed embodiments relate to systems and methods for generatingreal-time quotes for vehicles. Reference will now be made in detail toexemplary embodiments and aspects of the present disclosure, examples ofwhich are illustrated in the accompanying drawings. While numerousspecific details are set forth in order to provide a thoroughunderstanding of the disclosed example embodiments, it would beunderstood by those skilled in the art that the principles of theexample embodiments may be practiced without every specific detail.Unless explicitly stated, the example methods and processes describedherein are not constrained to a particular order or sequence, orconstrained to a particular system configuration. Additionally, some ofthe described embodiments or elements thereof can occur or be performedsimultaneously, at the same point in time, or concurrently. Referencewill now be made in detail to the disclosed embodiments, examples ofwhich are illustrated in the accompanying drawings.

As used herein, the term “image” may connote digital information storedin an appropriate format, for example, static image formats (e.g.,bitmap, Graphics Interchange Format (“GIF”), Portable Network Graphicsformat (“PNG”), Joint Photographic Experts Group (“JPEG”)) or dynamicformats (e.g., animated GIF, MPEG-4, Flash Video (“FLV”), Windows MediaVideo (“WMV”)).

FIG. 1 is a block diagram of an exemplary system 100. System 100 may beused to identify a vehicle and associated vehicle attributes (e.g.,make, model, trim, year, color, etc.) based on an image of the vehicle,in accordance with disclosed embodiments. System 100 may include aserver system 105 which may include an image recognizer 110, a modelgenerator 120, an image classifier 130, a location determination system140, an authentication module 150, and a memory 160. System 100 mayadditionally include online resource 106, comparison resource 107,database 180, and client device 190. In some embodiments, as shown inFIG. 1, each component of system 100 may be connected to a network 170.However, in other embodiments components of system 100 may be connecteddirectly with each other, without network 170.

Online resource 106 may include one or more servers or storage servicesprovided by one or more service providers, such as a provider of websitehosting, networking, cloud, or backup services. In some embodiments,online resource 106 may be associated with hosting services or serversthat store web pages for vehicle manufacturers and/or vehicle dealers.In other embodiments, online resource 106 may be associated with a cloudcomputing service such as Microsoft Azure™ or Amazon Web Services™. Inyet other embodiments, online resource 106 may be associated with amessaging service, such as, for example, Apple Push NotificationService, Azure Mobile Services, or Google Cloud Messaging. In suchembodiments, online resource 106 may handle the delivery of messages andnotifications related to functions of the disclosed embodiments, such asimage compression, notification of identified vehicles alerts, and/orcompletion messages and notifications.

Comparison resource 107 may include one or more servers or storageservices configured to store comparison information. In some aspects,the one or more servers or storage services can host one or moreresources provided by one or more service providers. Comparisoninformation can include pricing information, vehicle-relatedinformation, and personal information. In some embodiments, comparisoninformation can include records of vehicle financing transactions, suchas vehicle financing applications submitted by other users of system100. Pricing information can include vehicle prices, monthly paymentamounts, APRs, term lengths, warranty products typically purchased(e.g., tire protection plans, extended warranties), and/or amountsfinanced. Vehicle-related information can include vehicle make, model,vehicle identification number, color, trim, mileage, dealership of leaseor purchase, geographic area of lease or purchase (zip code, city,state, etc.), date of lease or purchase, and/or other informationpotentially affecting the price of a vehicle. Personal information caninclude demographic (e.g., age), financial (e.g., income, creditrating), residence (e.g., home address), and/or prior behaviorinformation (e.g. driving record). In some embodiments, comparisonresource 107 can be configured to store comparison information in one ormore databases. The one or more databases can be configured to allowretrieval of comparison information according to one or more of pricinginformation, vehicle-related information, and personal information. Forexample, comparison resource 107 can be configured to allow anothercomponent of system 100 (e.g., system 105) to retrieve at least a subsetof comparison information (e.g., pricing information) concerning aparticular vehicle make, model, and trim. In some embodiments,comparison resource 107 can include information concerning customers ofa financial service provider. In some aspects, the financial serviceprovider can be associated with one or more other components of system100, such as system 105.

Client device 190 may include one or more computing devices configuredto perform operations consistent with disclosed embodiments. Forexample, client device 190 may include at least one of a desktopcomputer, a laptop, a server, a mobile device (e.g., tablet, smartphone, etc.), a gaming device, a wearable computing device, or othertype of computing device. Client device 190 may include one or moreprocessors configured to execute software instructions stored in memory,such as memory included in client device 190. Client device 190 mayinclude software that when executed by a processor performsInternet-related communication and content display processes. Forinstance, client device 190 may execute browser software that generatesand displays interfaces including content on a display device includedin, or connected to, client device 190. Client device 190 may executeapplications that allow client device 190 to communicate with componentsover network 170, and generate and display content in interfaces via adisplay device included in client device 190. The display device may beconfigured to display images described in FIG. 9. The disclosedembodiments are not limited to any particular configuration of clientdevice 190. For instance, client device 190 can be a mobile device thatstores and executes mobile applications that interact with server system105 and/or online resource 106 to perform aspects of the disclosedembodiments, such as providing information about vehicles in database180. In certain embodiments, client device 190 may be configured toexecute software instructions relating to location services, such as GPSlocations. For example, client device 190 may be configured to determinea geographic location and provide location data and time stamp datacorresponding to the location data. In yet other embodiments, clientdevice 190 may capture video and/or images.

Database 180 may include one or more computing devices configured toprovide vehicle data to one or more of server system 105, modelgenerator 120, and image classifier 130. In some aspects, such vehicledata can include vehicle inventory listings, vehicle images, vehiclefeatures, and stored information about vehicle sales like cost orcondition. Database 180 may include, for example, one or more Oracle™databases, Sybase™ databases, or other relational databases ornon-relational databases, such as Hadoop™ sequence files, HBase™ orCassandra™ Database(s) 180 may include computing components (e.g.,database management system, database server, etc.) configured to receiveand process requests for data stored in memory devices of thedatabase(s) and to provide data from the database(s).

While database 180 is shown separately, in some embodiments database 180may be included in or otherwise related to one or more of server system105, image recognizer 110, model generator 120, image classifier 130,and online resource 106.

Database 180 may be configured to collect and/or maintain vehicle datafor vehicles displayed using online resource 106. Database 180 can beconfigured to provide such data to the server system 105, modelgenerator 120, image classifier 130, and client device 190. Database 180may collect this data from a variety of sources, including, forinstance, online resource 106. Database 180 is further described belowin connection with FIG. 3.

Image classifier 130 may include one or more computing systemsconfigured to collect and process images. Image classifier 130 may beconfigured to use the processed images to create training data sets.Consistent with disclosed embodiments, these training data sets can beused to develop an identification model. For example, image classifier130 may include an image collector that collects images for use intraining a linear regression classifier or a convolutional neuralnetwork. In some embodiments, image classifier 130 can be configured tocommunicate with online resource 106 and to detect changes in onlineresource 106. In some embodiments, detection of such changes can causeimage classifier 130 to collect images and begin the classificationprocess.

Model generator 120 may include one or more computing systems configuredto generate models to identify a vehicle using a vehicle image. Modelgenerator 120 may be configured to receive or obtain information fromdatabase 180, online resource 106, and/or image classifier 130. Forexample, model generator 120 may receive a plurality of images fromdatabase 180 and online resource 106. As and additional example, modelgenerator 120 may also receive images and metadata from image classifier130.

In some embodiments, model generator 120 may receive requests from imagerecognizer 110. As a response to such a request, model generator 120 maygenerate one or more identification models. In some aspects,identification models may include convolutional neural networks thatdetermine attributes in an image based on features extracted from theimage. In various aspects, identification models may include statisticalalgorithms. After training with a set of training images, thesestatistical algorithms can determine a similarity between images. Forexample, identification models may include regression models thatestimate the relationships among input and output variables. In someaspects, identification models may additionally sort elements of adataset using one or more classifiers to determine the probability of aspecific outcome. Statistical identification models may be parametric,non-parametric, and/or semi-parametric models. A convolutional neuralnetwork model can be configured to process an image into a collection offeatures. The convolutional neural network can comprise an input layer,one or more middle layers, and one or more output layers. An image canbe applied to the input layer. In some embodiments, the input layer cancomprise multiple matrices (e.g., a matrix for each of the red, green,and blue pixel values in an RGB image). In some embodiments, the inputlayer can comprise a single matrix (e.g., a single two-dimensionalmatrix of pixel brightness values). In some aspects, each middle layerand the output layer can be a deterministic function of the values ofthe preceding layer. The convolutional neural network can include one ormore convolutional layers. Each convolutional layer can be configured toconvolve one or more spatial filters with the convolutional layer inputto generate a convolutional layer output tensor. Each spatial filterfunction can be defined by a matrix of weights to be applied to eachelement of the preceding layer during a convolution operation, anoffset, and an activation function. Training the convolutional neuralnetwork can comprise modifying the weights and offsets using abackpropagation algorithm. In some embodiments, the convolutional neuralnetwork can also include pooling layers and fully connected layersaccording to methods known in the art. Identification models may alsoinclude Random Forests, composed of a combination of decision treepredictors. Such decision trees may comprise a data structure mappingobservations about something, in the “branch” of the tree, toconclusions about that thing's target value, in the “leaves” of thetree. Each tree may depend on the values of a random vector sampledindependently and with the same distribution for all trees in theforest. Identification models may additionally or alternatively includeclassification and regression trees, or other types of models known tothose skilled in the art.

Model generator 120 may be configured to submit models to identify avehicle. To generate identification models, model generator 120 mayanalyze images that are classified by the image classifier 130, applyingmachine learning methods. Model generator 120 may communicate withserver system 105 via network 170 or other communication avenues.

Image recognizer 110 may be configured to identify vehicles based onimages of vehicles. In some embodiments, Image recognizer 110 mayreceive a request to identify a vehicle in an image. Image recognizer110 may receive the request directly from client device 190.Alternatively, image recognizer 110 may receive the request from othercomponents of system 100. For example, client device 190 may sendrequests to online resource 106, which then sends requests to serversystem 105. The request may include an image of a vehicle and a locationof client device 190. In other embodiments, the request may include avideo file or a streaming video feed.

As a response to identification requests, server system 105 may requestidentification models from model generator 120. The request may includeinformation about the image source, for example an identification ofclient device 190. The request may additionally specify a location. Inaddition, image recognizer 110 may retrieve information from database180.

Image recognizer 110 may generate an identification result based on theinformation received from the client request and transmit theinformation to the client device. Image recognizer 110 may generateinstructions to modify a graphical user interface to includeidentification information associated with the received image.

FIG. 1 shows image recognizer 110, model generator 120, and imageclassifier 130 as different components. However, image recognizer 110,model generator 120, and image classifier 130 may be implemented in thesame computing system.

Location determination system 140 may include one or more computingsystems configured to perform operations consistent with determining alocation of a client device 190. In some embodiments, locationdetermination system 140 may transmit a request to client device 190 forlocation information. In response to the request, client device 190 maytransmit location information such as geographic coordinates oridentifiers to the location determination system 140 via network 170.The location determination system 140 may map the geographic coordinatesor identifiers to a specific geographic location. The locationdetermination system 140 may include satellite based geolocationsystems, e.g., GPS, Glonass, Galileo, etc.; long range terrestrialgeolocation systems, e.g., LORAN; short-range network based geolocationsystems, e.g., network based cellular e911; short range proximitylocation sensing, e.g., 802.11 access point identification,line-of-sight location identification, e.g., IRdA or other visible,sonic or invisible electromagnetic waves which are confined by barriers;RFID based location detectors; and the like.

Authentication module 150 may include one or more computing systemsconfigured to perform one or more operations consistent withauthenticating a user. In some embodiments, a user registers for anaccount and creates a user name and password. The user accountinformation, including the user name and password, may be stored inmemory 160, for example. To access the user account, a registered usercan provide the user name and password information to the authenticationmodule 150 via client device 190. Authentication module 150 can beconfigured to authenticate the user based on the received user name andpassword information. Authentication module 150 can then grant access tothe user account. In some embodiments, user account information includespre-qualified financing application information, as discussed furtherbelow.

Network 170 may be any type of network configured to providecommunications between components of system 100. For example, network170 may be any type of network (including infrastructure) that providescommunications, exchanges information, and/or facilitates the exchangeof information, such as the Internet, a Local Area Network, near fieldcommunication (NFC), optical code scanner, or other suitableconnection(s) that enables the sending and receiving of informationbetween the components of system 100. In some embodiments, one or morecomponents of system 100 can communicate through network 170. In variousembodiments, one or more components of system 100 may communicatedirectly through one or more dedicated communication links.

It is to be understood that the configuration and boundaries of thefunctional building blocks of system 100 have been defined herein forthe convenience of the description. Alternative boundaries can bedefined so long as the specified functions and relationships thereof areappropriately performed. Alternatives (including equivalents,extensions, variations, deviations, etc., of those described herein)will be apparent to persons skilled in the relevant art(s) based on theteachings contained herein. Such alternatives fall within the scope andspirit of the disclosed embodiments.

FIG. 2 is a block diagram of client device 190, in accordance withdisclosed embodiments. In one embodiment, client device 190 may includeprocessor 202, location sensor 204, input/output (I/O) system 206, andmemory 210. In some embodiments, client device 190 may take the form ofa mobile computing device (e.g., a wearable device, smartphone, tablets,laptop, or similar device), a desktop (or workstation or similardevice), or a server. Alternatively, client device 190 may be configuredas a particular apparatus, embedded system, dedicated circuit, and thelike based on the storage, execution, and/or implementation of thesoftware instructions that perform one or more operations consistentwith the disclosed embodiments. According to some embodiments, clientdevice 190 may be configured to provide a web browser or similarcomputing application capable of accessing web sites, consistent withdisclosed embodiments.

Processor 202 may include one or more known processing devices, such asmobile device microprocessors manufactured by Intel™, NVIDIA™, orvarious processors from other manufacturers. As would be appreciated byone of skill in the art, the disclosed embodiments are not limited to aparticular processor type.

Memory 210 may include one or more storage devices configured to storeinstructions for performing operations related to disclosed embodiments.For example, memory 210 may be configured with one or more softwareinstructions, such as program 212, that when executed by processor 202,can cause client device 190 to perform operations according to thedisclosed embodiments. The disclosed embodiments are not limited toseparate programs or computers configured to perform dedicated tasks.For example, client device 190 can be configured to perform thedisclosed functions of client device 190 by one or more programs storedin memory 210 (e.g., program 212). In some aspects, memory 210 can beconfigured to store data 216 used by one or more programs 212.

In certain embodiments, memory 210 may store a vehicle identificationapplication 214 that may be executed by processor(s) 202 to perform oneor more identification processes consistent with disclosed embodiments.In certain aspects, vehicle identification application 214, or anothersoftware component, may be configured to request identification fromserver system 105 or determine the location of client device 190.

Location sensor 204 may include sensor(s) and/or system(s) capable ofdetermining a location of client device 190, such as a GlobalPositioning System (GPS) receiver, Bluetooth transceiver, or WiFitransceiver. When location sensor 204 includes multiple sensor(s) and/orsystem(s), client device 190 can be configured to determine geographiccoordinates or identifiers, such as latitude or longitude based on dataprovided from multiple sensor(s) and/or system(s). Client device 190 canbe configured to send the geographic coordinates or identifiersdetermined by location sensor 204 to other components of system 100 via,for example, network 170.

I/O system 206 may include one or more devices configured to allow datato be received and/or transmitted by client device 190 and to allowclient device 190 to communicate with other machines and devices, suchas other components of system 100. For example, I/O system 206 mayinclude a screen for providing information to the user. I/O system 206may also include components for NFC communication. I/O system 206 mayalso include one or more digital and/or analog devices that allow a userto interact with client device 190 such as a touch-sensitive area,buttons, or microphones. I/O system 206 may also include one or moreaccelerometers to detect the orientation and inertia of client device190. I/O system 206 may also include other components known in the artfor interacting with server system 105.

In some embodiments, client device 190 may include image sensor 220(e.g., a digital camera). Image sensor 220 can be configured to takeimages or video and send it to other component of system 100 via, forexample, network 170.

The components of client device 190 may be implemented in hardware,software, or a combination of both hardware and software, as will beapparent to those skilled in the art.

FIG. 3 is a block diagram of an exemplary database 180, in accordancewith disclosed embodiments. Database 180 may include a communicationdevice 302, one or more database processors 304, and database memory 310including one or more database programs 312 and data 314. In someembodiments, database 180 may be hosted on one or more computing devices(e.g., desktops, workstations, servers, and computing clusters).

Communication device 302 may be configured to communicate with one ormore components of system 100, such as online resource 106, comparisonresource 107, server system 105, model generator 120, image classifier130, and/or client device 190. In particular, communication device 302may be configured to provide to model generator 120 and image classifier130 images of vehicles that may be used to generate a convolutionalneural network or an identification model.

The components of database 180 may be implemented in hardware, software,or a combination of both hardware and software, as will be apparent tothose skilled in the art. For example, although one or more componentsof database 180 may be implemented as computer processing instructionmodules, all or a portion of the functionality of database 180 may beimplemented instead in dedicated electronics hardware.

Data 314 may be data associated with websites, such as online resource106. Data 314 may include, for example, information from websites ofvehicle dealers or vehicle manufacturers. Data 314 may include images ofvehicles and information of vehicles, such as cost, condition, anddealers offering the vehicle. Data 314 may include vehicle inventoryinformation for a particular vehicle dealership. Data 314 may include amap of a dealership lot and include specific location information foreach vehicle in the dealership based on the map.

FIG. 4 is a flowchart of an exemplary method 400 for generating areal-time quote for a vehicle, consistent with embodiments of thepresent disclosure. Method 400 can include the steps of identifyingvehicle attributes based on an image, obtaining pricing data, andgenerating a quote. Method 400 can be performed using system 100. Insome embodiments, one or more steps of method 400 can be performed byclient device 190. In various embodiments, one or more steps of method400 can be performed by system 105. In certain embodiments, method 400can be performed entirely by system 105 (or by client device 190).

After starting in step 401, system 100 can identify vehicle attributesbased on an image in step 403. In some embodiments, identification ofvehicle attributes can be performed using system 105. For example,system 105 can be configured to use image recognizer 110 to identifyvehicle attributes. In some aspects, image recognizer 110 can beconfigured to use a model generated by model generator 120. In someaspects, system 105 can be configured to receive the image from clientdevice 190. In various embodiments, identification of vehicle attributescan be performed using client device 190. For example, client device 190can be configured to receive a model generated by model generator 120.In various aspects, client device 190 can be configured to obtain animage (e.g., using image sensor 220). Client device 190 can beconfigured to apply this image to the model to identify vehicleattributes.

After step 403, system 100 can obtain pricing data in step 405. In someembodiments, the pricing data can be obtained using system 105. Forexample, system 105 can be configured to obtain pricing data from one ormore of database 180, online resource 106, or comparison resource 107.As an additional example, system 105 can be configured to obtain data314 from database 180, As a further example, system 105 can beconfigured to obtain from comparison resource 107 at least one ofpricing information, vehicle-related information, and personalinformation. As an additional example, system 105 can be configured toobtain from online resource 106 at least one of information retrievedfrom the website of a vehicle manufacturers and/or vehicle dealer. Insome aspects, system 105 can be configured to receive informationconcerning a user from client device 190. In various embodiments, thepricing data can be obtained using client device 190. For example,client device 190 can be configured to interact with at least one of auser, database 180, online resource 106, or comparison resource 107 toobtain the pricing data.

After step 405, system 100 can be configured to generate a quote in step407. The quote can depend on the pricing data gathered in step 405. Forexample, the quote can include at least one of a vehicle price, monthlypayment amount, APR, term length, or amount financed based on thepricing data. In some embodiments, the quote can be generated by system105. In various embodiments, the quote can be generated by client device190. After step 407, method 400 can end at step 409.

FIGS. 5A-5C are flowcharts of exemplary methods for identifying vehicleattributes based on an image, consistent with embodiments of the presentdisclosure. In some embodiments, system 100 can use the exemplarymethods depicted in FIGS. 5A-5C to identify vehicle attributes based onan original image in step 403 of method 400.

According to method 510, after starting in step 511, system 100 can beconfigured to identify vehicle attributes from an original image in step513. In some aspects, system 105 can be configured to identify thevehicle attributes. In various aspects, client device 190 can beconfigured to identify the vehicle attributes. The vehicle attributescan be identified from an image obtained by client device 190. Thevehicle attributes can be identified using a model generated by modelgenerator 120. After step 513, method 510 can end at step 519.

According to method 520, after starting in step 521, system 100 can beconfigured to identify potential vehicle attributes from an originalimage in step 523. The identification of potential vehicle attributes instep 523 may proceed similarly to the identification of vehicleattributes in step 513. After step 523, system 100 can retrieve vehicleimages in step 525. In some aspects, the vehicle images can be retrievedfrom a database associated with one or more dealerships and/or vehiclemanufacturers (e.g., database 180). In some aspects, this database caninclude records associating images with vehicle attributes. For example,a record can include one or more images of a vehicle and one or morevehicle attributes for that vehicle. As an additional example, a recordcould include images of a Chevy Bolt and the vehicle attributes “Chevy”and “Bolt”. In some embodiments, system 100 can be configured to createthe records by extracting the vehicle attributes from the one or moreimages. In various aspects, the vehicle images can be retrieved usingone or more of the vehicle attributes identified in step 523. Forexample, images of vehicles with one or more attributes similar to thosevehicle attributes identified in step 523 can be retrieved. As anadditional example, when the vehicle attributes “Chevy” and “Bolt” areextracted from the original image in step 523, the record describe abovecould be identified, and the associated images of the Chevy Boltretrieved. In various embodiments, images can be retrieved in thismanner by client device 190 or system 105. After step 525, system 100can be configured to confirm the vehicle identification in step 527. Insome embodiments, system 100 can be configured to compare the originalimage to the retrieved image. In certain aspects, the comparison can beperformed by client device 190 or system 105. The comparison can beperformed using machine learning features extracted from the originalimage and the images retrieved from the database. System 100 can beconfigured to determine that the original image and the one or moreretrieved images are similar when the comparison satisfies a matchingcriterion. In some aspects, system 100 can identify vehicle attributesof the original image based on the potential vehicle attributesidentified in step 523 and the vehicle attributes associated with theone or more retrieved images. For example, system 100 can be configuredto select the potential vehicle attributes as the actual vehicleattributes when they match the vehicle attributes associated with theone or more retrieved images. As an additional example, system 100 canbe configured to select the vehicle attributes associated with the oneor more retrieved images as the actual vehicle attributes. For example,the vehicle image can be retrieved by make and model, and the value fortrim and year can be selected from the vehicle attributes associatedwith the one or more retrieved images. In this manner, the potentialvehicle attributes can be used to retrieve a limited number of imagesfrom the database, reducing the number of required images comparisons todetermine the actual vehicle attributes. After step 527, method 520 canend at step 529.

According to method 530, after starting in step 531, system 100 can beconfigured to confirm a vehicle identification in step 537. In someembodiments, system 100 can be configured to compare an original imageto the images in a database (e.g., database 180). In certain aspects,the comparison can be performed by client device 190 or system 105. Thecomparison can be performed using machine learning features extractedfrom the original image and the images in the database. System 100 canbe configured to determine that the original image and the one or moreretrieved images are similar when the comparison satisfies a matchingcriterion. After identifying similar images in step 537, system 100 canbe configured to retrieve vehicle attributes associated with the matchedimages in step 538. For example, the database can be configured to storeimages of vehicles associated with attributes of the depicted vehicles.System 100 can match the original image to images in the database. Thevehicle attributes for the original image can then be retrieved from thedatabase based on the matching image(s). In some aspects, comparing allimages in the database to the original image may be practicable. Afterstep 538, method 530 can end at step 539.

FIG. 6 is a flowchart of an exemplary method 600 for identifying vehicleattributes (as described above with regards to FIGS. 5A and 5B) usingtwo convolutional neural networks, consistent with embodiments of thepresent disclosure. After starting in step 601, a component of system100 (e.g., client device 190 or system 105) can receive an image in step603. In some embodiments, the image can be obtained using an imagesensor 220. In various embodiments the image can be retrieved from adatabase (e.g. database 180). In step 605, a component of system 100(e.g., client device 190 or system 105) can extract machine learningfeatures from the retrieved image. In some embodiments, these featurescan be extracted by inputting the image, or a version of the image, intoa first convolutional neural network. The first convolutional neuralnetwork can be configured to output the machine learning features. Instep 607, a component of system 100 (e.g., client device 190 or system105) can extract vehicle attributes from the machine learning features.In some embodiments, these features can be extracted by inputting themachine learning features into a second convolutional neural network. Insome embodiments, the second convolutional neural network can bedistinct from the first convolutional neural network. The secondconvolutional neural network can be configured to output indications ofthe vehicle attributes. After step 607, method 600 can end at step 609.

FIG. 7 is a flowchart of an exemplary method 700 for comparing imagesusing a convolutional neural network (as described above with regards toFIGS. 5B and 5C), consistent with embodiments of the present disclosure.As shown in FIG. 7, system 100 can extract features from a databaseimage and a mobile device image, compare these features, and determinewhether the images are similar.

After starting in step 701, a component of system 100 (e.g., clientdevice 190 or system 105) can obtain an image from a database (e.g.,database 180) in step 703 a. For example, client device 190 or system105 can be configured to communicate with database 180 to retrieve animage. After step 703 a, a component of system 100 (e.g., client device190 or system 105) can extract machine learning features from the imageusing a convolutional neural network in step 705 a. Similarly, afterstarting in step 701, a component of system 100 (e.g., client device 190or system 105) can obtain an image from a mobile device (e.g., usingimage sensor 220 of client device 190) in step 703 b. For example,system 105 can be configured to communicate with client device 190 toretrieve an image captures by image sensor 220. After step 703 a, acomponent of system 100 (e.g., client device 190 or system 105) canextract machine learning features from the image using a convolutionalneural network in step 705 a. Likewise, after step 703 b, a component ofsystem 100 (e.g., client device 190 or system 105) can extract machinelearning features from the mobile image using a convolutional neuralnetwork in step 705 b. In some aspects, system 100 can be configured toextract machine learning features from the database image and the mobileimage using different components of system 100. For example, system 105can extract the machine learning features of the database image, andclient device 190 can extract the machine learning features of themobile device image. After steps 705 a and 705 b, component of system100 (e.g., client device 190 or system 105) can calculate a comparisonmetric in step 707. In some embodiments, this calculation can involveinputting the machine learning features extracted from the databaseimage and the machine learning features extracted from the mobile deviceimage into a classifier, such as another neural network. In additionalembodiments, a component of system 100 can be configured to calculate ametric based on the extracted machine learning features (e.g., an innerproduct of the machine learning features extracted from the databaseimage and the machine learning features extracted from the mobile deviceimage). A value of the metric can indicate the degree of similaritybetween the images. In some instances values of the metric can increasewith increasing similarity. In various instances values of the metriccan decrease with increasing similarity. After step 707, a component ofsystem 100 (e.g., client device 190 or system 105) can determine whetherthe calculated comparison metric satisfies a matching criterion. Forexample, when the metric increases with increasing similarity, thematching criterion can be satisfied when a value of the metric exceeds athreshold value. After step 709, a component of system 100 (e.g., clientdevice 190 or system 105) can identify the image as either a similarimage (step 713) or a dissimilar image (711). System 100 can beconfigured to rely upon this determination when confirmingidentification of a vehicle (e.g., in step 527 of method 520 or in step537 of method 530). After step 711 or step 713, method 700 can end atstep 715.

FIG. 8 is a flowchart depicting a method 800 for generating pricingdata, consistent with embodiments of the present disclosure. In someembodiments, system 100 can use method 800 in step 405 of method 400.After starting in step 801, a component of system 100 (e.g., clientdevice 190 or system 105) can retrieve information from at least one ofthe following categories: general vehicle information, general customerinformation, specific vehicle information, and specific customerinformation. General vehicle information 803 can include general pricinginformation (e.g., MSRP, invoice price, rebates). For some vehicles,general vehicle information 803 may be the only information available.In some embodiments, general vehicle information 803 can be retrievedfrom at least one of database 180, online resource 106, or comparisonresource 107. General customer information 805 can include the financingterms received by other users for the identified vehicle (within acertain period of time, in a certain geographic area, for users havingcertain characteristics, etc.). In some embodiments, general customerinformation 805 can be retrieved from comparison resource 107. Specificvehicle information 807 can include the price and available rebateinformation for a particular car (e.g. when the image concerns aparticular car at a dealership). In some embodiments, specific vehicleinformation 807 can be retrieved from at least one of database 180 oronline resource 106. Specific customer information 809 can includeprequalification information for a particular user (credit rating,income, etc.). In some embodiments, specific customer information 809can be retrieved from at least one of system 105 or client device 190.For example, a customer can interact with system 105 (or client device190) to prequalify for vehicle financing, and specific customerinformation can be received and stored by system 105 (or client device190) during that prequalification. As an additional example, a customercan interact with client device 190 after providing an image of avehicle. In this example, the customer can provide specific customerinformation to enable system 100 to generate a personalized quote forthe vehicle in the image. After retrieving data in one or more of steps803, 805, 807, and 809, system 100 can generate pricing data in step811. Generating the pricing data can include storing the retrieved dataon at least one of system 105 and client device 190. In some aspects,generating the pricing data can include organizing the retrieved dataaccording to a common schema (e.g., a common record layout with commondatatypes and formats, regardless of the origin of the retrieved data).After step 811, method 800 can finish at step 813. In this manner, acomponent of system 100 can be configured to generate pricing data usingone or more of database 180, system 105, comparison resource 107 andonline resource 106. In some embodiments, system 100 can be configuredto indicate that a quote is a personalized quote when the quote isgenerating using specific vehicle information and specific customerinformation. System 100 can be configured to indicate otherwise that thequote is an estimate.

FIG. 9 is a flowchart of an exemplary method 900 for generating areal-time quote for a vehicle, according to disclosed embodiments. Insome embodiments, method 900 may be carried out by one or morecomponents of system 100 (e.g., system 105 and/or client device 190). Insome aspects, method 900 can proceed similarly to the methods describedabove with regards to FIGS. 4, 5B and 5C.

In step 902, a component of system 100 (e.g., system 105 or clientdevice 190) can determine a location of a user's client device. Forexample, client device 190 can obtain a location from location sensor204. As an additional example, location determination system 140 mayinitiate a request for a location of client device 190. Client device190 may transmit location information, such as longitude, latitude, orother geographic identifiers, to the location determination system 140in response to the request. The location information may be obtainedusing location sensor 204 in client device 190. In some embodiments,system 105 can determine that location services on client device 190 isnot enabled. The system may then transmit information for display onclient device 190 requesting location services be enabled. Once thelocation services transmits location information, location determinationsystem 140 may determine a specific geographic location of client device190 based on the transmitted location information.

In step 904, a component of system 100 (e.g., system 105 or clientdevice 190) can receive a first image of a vehicle from an image sensorof client device 190. For example, system 105 may send instructions fortaking a picture of a vehicle to a user interface displayed on clientdevice 190. In some embodiments, the user may be instructed to take apicture of a vehicle using an image sensor 220, such as a camera, of theclient device 190. The user interface may include instructions guidingthe user to take the image of the vehicle, as described in furtherdetail below in relation to FIG. 14. The image may then be transmittedto image recognizer 110 through network 170.

In step 906, a component of system 100 (e.g., system 105 or clientdevice 190) can match the first image to one or more images of vehiclesin a database to identify the vehicle. In some aspects, the database(e.g., database 180) can include records for vehicles located at thedetermined location. For example, the database can contain vehicleinventory information for a particular vehicle dealership located at thedetermined location. In some embodiments, the vehicle inventoryinformation can include a listing of every vehicle available at thedealership and related information. For example, related information mayinclude a vehicle make, model, vehicle identification number, color,trim, mileage, and/or other identifying information of a vehicle.Related information may also include images of the exterior and/orinterior of the vehicle. In some embodiments, related information caninclude the specific location of the vehicle in the dealership based ona map of the dealership lot. In some embodiments, system 105 can beconfigured to retrieve related information in step 404. In variousembodiments, such related information can be retrieved in step 408.

In some embodiments, as described above with regards to FIG. 5B, system100 can, in step 906, extract attributes from the first image and matchthe first image to a subset of images in the database based on theextracted attributes. In various embodiments, as described above withregards to FIG. 5C, system 100 can, in step 906, match the first imageto the images in the database.

In some embodiments, system 100 can provide instructions to display onclient device 190 a request for confirmation that the user is at theidentified location, such as the particular vehicle dealership. Afterreceiving confirmation from the user via the client device, thecomponent of system 100 (e.g., system 105 or client device 190) canaccess database 180 to retrieve one or more images of vehicles in thedatabase.

In some embodiments, image recognizer 110 (or client device 190) can usea machine learning algorithm to match the first image to the one or moreimages in the database (e.g., database 180). In some aspects, themachine learning algorithm may be a convolutional neural network, asdisclosed above. In some embodiments, as described above with regards toFIGS. 5B and 5C, system 105 may retrieve vehicle information from thedatabase in step 908 once the vehicle is identified. For example, thefirst image may be matched to an image of a vehicle listed in thevehicle inventory of the dealership (e.g., as described above withregard to FIG. 7). Once the system determines a match, the relatedvehicle information can be retrieved from the database. As used herein,a “match” may include a similarity between the images that is greaterthan a predefined threshold. As described above, in some embodiments,the vehicle information for the dealership can be retrieved at step 906.In such embodiments, the relevant vehicle information can be selected atstep 908 from the previously retrieved vehicle information.

In some embodiments, image recognizer 110 (or client device 190) canverify that the match relates to the correct vehicle. For example, imagerecognizer 110 can determine a match between the first image and one ormore images relating to one or more vehicles listed in the database(e.g., database 180). In some aspects, system 105 may then transmit theone or more matched images to the user interface of client device 190.System 105 may transmit instructions for display on the client device190, requesting confirmation from the user to verify the identifiedvehicle. For example, the user interface may be prompted to select animage of the correct vehicle. In some embodiments, image recognizer 110may verify that the match relates to the correct vehicle by determiningthe expected location of the vehicle. For example, image recognizer 110may obtain a map of the dealership from database 180, including theexpected location of each vehicle listed in the dealership inventory onthe map. Image recognizer 110 may further use geographicalidentification information embedded in the first image to determine alocation of the imaged vehicle. For example, client device 190 may embedthe first image with metadata providing geographic location informationwhen the first image is captured. In some embodiments, image recognizer110 may compare the expected location of the identified vehicle with thedetermined location of the imaged vehicle to verify that the identifiedvehicle is correct. In various aspects, in place of system 105, clientdevice 190 can determine the match, provide the one or more matchedimages for display independent of system 105 for user confirmation,and/or verify the that the match relates to the expected vehiclelocation.

In step 910, system 105 can obtain user information relating to avehicle financing request. In some embodiments, the user can create auser account and can submit an application to pre-qualify for vehiclefinancing. For example, the user may visit a website relating to thelender to register for a user account. The user account registration mayrequire creating authentication information such as a username andpassword. Once the user account is registered, the authenticationinformation can be used to access the account. For example, the user maybe prompted to enter authentication information via a user interface onthe client device 190 to access the account. In some embodiments, theapplication to pre-qualify for vehicle financing includes a request foruser information. The user information may include the name, emailaddress, home address, phone number, mailing address, date of birth,and/or social security number of the user. The user information mayfurther include employment information including the name of theemployer, job title, and/or annual income of the user. In someembodiments, after submitting the application to pre-qualify, the usercan log into their account to provide system 105 with the required userinformation relating to the vehicle financing request.

In some embodiments, system 105 can transmit a vehicle financingapplication form for display on client device 190 to obtain the userinformation in step 910. The application form may include a request foruser information similar to the application to pre-qualify discussedabove. In some embodiments, the application form can include a shortenedquestionnaire to provide a prompt real-time quote. For example, thequestionnaire may request information relating to the vehicle condition,the user's credit, the amount desired to finance, and/or the preferredterm length. In some embodiments, the shortened questionnaireinformation is sufficient to provide the required user information.

In step 912, a component of system 100 (e.g., system 105 or clientdevice 190) can determine a real-time quote for the vehicle based on thevehicle information obtained at step 908 and the user informationobtained at step 910. In some embodiments, the real-time quote includespricing information relating to the identified vehicle. For example, thepricing information may include a vehicle price, monthly payment amount,APR, term length, and/or amount financed. This real-time quote can bepersonalized based on the information obtained from the user in step 910(e.g., through pre-qualification and/or a questionnaire). As anon-limiting example, the real-time quote can reflect the user's credit,the amount desired to finance, and/or the preferred term length.

In step 914, client device 190 can display the real-time quote. In someembodiments, system 105 can transmit the quote for display on clientdevice 190. For example, the real-time quote may be transmitted vianetwork 170 and displayed on a user interface on client device 190. Insome embodiments, the user may manipulate different factors to determinehow the quote is affected. For example, the user may add, remove, ormake changes to a service contract, gap insurance, or down payment todetermine the effect on payment options, APR, and/or monthly paymentsrelating to the quote. In various embodiments, client 190 can generate,display, and update the real-time quote in response to user input.

FIG. 10 is a flowchart of an exemplary method 1000 for generating areal-time quote for a vehicle, according to disclosed embodiments. Insome embodiments, method 1000 may be carried out by one or morecomponents of system 100 (e.g., system 105 and/or client device 190). Insome aspects, method 1000 can proceed similarly to the methods describedabove with regards to FIGS. 4, 5B, 5C, and 8.

In some embodiments, steps 1002-1010 may proceed as described above withregards to FIG. 9. For example, in step 1002, a component of system 100(e.g., system 105 or client device 190) can determine a location of auser's client device. In step 1004, a component of system 100 (e.g.,system 105 or client device 190) can receive a first image of a vehiclefrom an image sensor of the client device 190. In some embodiments, thisimage may then be transmitted to image recognizer 110 through network170.

In step 1006, a component of system 100 (e.g., system 105 or clientdevice 190) can match the first image to one or more images of vehiclesin a database to identify the vehicle. The database can include recordsfor vehicles located at the determined location. In some aspects, thedatabase can include vehicle inventory information, such as a listing ofevery vehicle available at the dealership and related information. Forexample, related information may include a vehicle make, model, vehicleidentification number, color, trim, mileage, and/or other identifyinginformation of a vehicle. Related information may also include images ofthe exterior and/or interior of the vehicle. In some embodiments,related information can include the specific location of the vehicle inthe dealership based on a map of the dealership lot.

In some embodiments, image recognizer 110 (or client device 190) can usematch the first image to the one or more images in the database (e.g.,as described above with regard to FIG. 7). The training of the machinelearning algorithms and the performance of the matching processes mayoccur as described below with regards to FIGS. 16-18. For example, thefirst image may be matched to an image of a vehicle listed in thevehicle inventory of the dealership. As disclosed above, images thatmatch may differ by less than a predefined threshold according to somemeasure of similarity. When more than one vehicle matches the firstimage, one of the images may be selected according to predeterminedcriteria (e.g., the first matching image, the most-similar image, theimage matching the vehicle with the lowest or highest price). Oncesystem 105 determines a match, the vehicle information for the matchingvehicle can be retrieved from the database in step 1008.

In some embodiments, the component of system 100 performing the matchingcan be configured to request the user confirm the identified vehicle.For example, client device 190 can be configured to display image(s) ofthe matching vehicle(s) and a request that the user confirm the matches.As an additional example, system 105 can be configured to transmitimage(s) of matching vehicle(s) to a client device of the user. System105 can then receive a response indicating the correct vehicle (orindicating that none of the vehicles is the correct vehicle). In someembodiments, image recognizer 110 (or client device 190) may verify thatthe match relates to the correct vehicle by determining the expectedlocation of the vehicle. For example, image recognizer 110 (or clientdevice 190) may obtain a map of the dealership from database 180,including the expected location of each vehicle listed in the dealershipinventory on the map. Image recognizer 110 (or client device 190) mayfurther use geographical identification information embedded in thefirst image to determine a location of the imaged vehicle. For example,client device 190 may embed the first image with metadata providinggeographic location information when the first image is captured. Insome embodiments, image recognizer 110 (or client device 190) maycompare the expected location of the identified vehicle with thedetermined location of the imaged vehicle to verify that the identifiedvehicle is correct.

In step 1010, a component of system 100 (e.g., system 105 or clientdevice 190) can obtain comparison information based at least in part onthe retrieved vehicle information. In some embodiments, the componentcan be configured to obtain comparison information from comparisonresource 107. In some aspects, the component can be configured toretrieve pricing information from comparison resource 107 based on atleast one of vehicle-related information and personal information. Forexample, the component can retrieve pricing information for vehiclessimilar to the identified vehicle or matching the identified vehicle. Asa further example, the component can be configured to retrieve pricinginformation for individuals who recently leased or purchased vehiclessimilar to the identified vehicle or matching the identified vehicle ina similar geographic area. As an additional example, in some embodimentssystem 105 can be configured to receive at least some user informationfrom the user. In some embodiments, the component can be configured toaccess a user account, such as the user accounts described above withregards to FIG. 1 and FIG. 9, to retrieve at least some userinformation. In various embodiments, client device 190 can obtain userinformation from the user. In some embodiments, system 105 can obtainuser information from the user through the client device. In someaspects, system 105 can be configured to provide instructions to displaya request for items of user information (e.g., credit score, income) oritems affecting vehicle financing (desired finance amount, preferredterm of financing or lease) to the client device. System 105 (or clientdevice 190) can then retrieve pricing information for vehicles similarto the identified vehicle or matching the identified vehicle that werepurchased or leased by individuals similar to the user. The similarityof the individuals to the user can be determined based on the receiveduser information and the personal information stored by comparisonresource 107. In this manner, comparison information can be obtained forsimilar or matching vehicles purchased or leased, or a subset of suchvehicles. The obtained comparison information can be defined by recency,geography, or personal characteristics of the users leasing orpurchasing the similar or matching vehicles.

In step 1012, a component of system 100 (e.g., system 105 or clientdevice 190) can estimate a quote for the vehicle based on the vehicleinformation obtained in step 1008 and/or the comparison informationobtained at step 1010 (e.g., as described above with regards to FIG. 8).In some aspects, the component can be configured to estimate one or morequotes based on the retrieved pricing information. In various aspects,the estimated quotes can be specific to particular financing options.For example, estimated quotes can be provided for auto purchase loans ofdifferent durations and/or auto lease arrangements of differentdurations. In this manner, estimated quotes can be determined based onthe actual pricing terms provided to other individuals. In someembodiments, the estimated quotes can be statistics of the retrievedpricing information. For example, the estimated down payment and monthlypayment for a 60 month auto loan for the identified vehicle can be themean (or median) of the down payment and monthly payment for individualsfinancing matching vehicles (or similar individuals financing matchingvehicles) with 60 month auto loans.

In some embodiments, the component can be configured to estimate one ormore quotes in response to input received from client device 190. Forexample, the user can specify financing parameters and system 105 canestimate quotes in accordance with the specified parameters. Forexample, the user can select or modify a choice of leasing or loaningthe vehicle; the term of the loan or lease; a down payment for thevehicle; and/or a service contract or gap insurance for the vehicle.system 105 can estimate a quote for the vehicle based on this input.

In step 1014, system 100 can display the real-time quote on the clientdevice 190. In some aspects, system 105 can transmit the one or morereal-time quotes to client device 190 via network 170. In variousaspects, the one or more quotes can be displayed on a user interface ofclient device 190. In some embodiments, the user interface may providean augmented reality (AR) display. For example, client device 190 can beconfigured to display the quote superimposed on the image of thevehicle. For example, when client device 190 detects that the imagesensor of client device 190 is positioned correctly, client device 190can be configured to display the quote superimposed on or around thevehicle.

FIG. 11 is a flowchart of another exemplary method for generating areal-time quote for a vehicle, according to disclosed embodiments. Insome embodiments, method 1100 may be carried out by one or morecomponents of system 100 (e.g., system 105 and/or client device 190). Insome aspects, method 1100 can proceed similarly to the methods describedabove with regards to FIGS. 4 and 5A.

In some embodiments, step 1102 may proceed as described above withregards to step 904 of FIG. 9. For example, in step 1102, a component ofsystem 100 (e.g., client device 190 or system 105) can receive an imageof a vehicle from image sensor 220. In some embodiments, this image maythen be transmitted from client device 190 to image recognizer 110through network 170.

In step 1104, a component of system 100 (e.g., client device 190 orsystem 105) can extract one or more features from the image (e.g., asdescribed above with regards to FIGS. 5A and 6). In some embodiments,image recognizer 110 may use a machine learning algorithm, such as aconvolutional neural network, to extract the one or more machinelearning features. In some aspects, these features may indicatecharacteristics of the vehicle depicted in the image, such as a logo, ashape of headlights of the vehicle, a shape of taillights of thevehicle, a shape of a door of the vehicle, a shape of a window of thevehicle, a shape of a door handle of the vehicle, a shape of a tire ofthe vehicle, an overall shape of a vehicle (e.g., its front profile,rear profile, side profile, overhead profile, etc.), or similarcharacteristics. In various aspects the features can indicatecharacteristics of the image, such as a particular arrangement ofpixels, a particular color shift, a bounding box size of an object inthe image, a shape of an object in the image, or the like.

In step 1106, based on the extracted features and using a machinelearning algorithm, a component of system 100 (e.g., client device 190or system 105) can determine attributes of the vehicle (e.g., asdescribed above with regards to FIGS. 5A and 6). In some embodiments,attributes of the vehicle can include make and model of the vehicle. Insuch embodiments, the attributes can further include a year of thevehicle and/or a trim of the vehicle. In some embodiments, imagerecognizer 110 may use the same machine learning algorithm as in step1104 (e.g., a convolutional neural network that outputs attributes basedon features).

In some embodiments, steps 1108-1112 may proceed as described above withregards to steps 910-914 of FIG. 9. For example, in step 1108, acomponent of system 100 (e.g. client device 190 or system 105) canobtain user information relating to a vehicle financing request. In someembodiments, the user can create a user account and can submit anapplication to pre-qualify for vehicle financing. Additionally oralternatively, the component can display (or transmit for display on theclient device) a vehicle financing application form to obtain the userinformation in step 1108.

In step 1110, a component of system 100 (e.g., client device 190 orsystem 105) can determine a real-time quote for the vehicle based on themake and the model obtained at step 1106 and the user informationobtained at step 1108. In some embodiments, the real-time quote includespricing information relating to the identified vehicle. For example, thepricing information may include a vehicle price, monthly payment amount,APR, term length, and/or amount financed. In this manner, the real-timequote can be personalized based on the information obtained from theuser in step 1108 (e.g., through pre-qualification and/or aquestionnaire). As a non-limiting example, the real-time quote canreflect the user's credit, the amount desired to finance, and/or thepreferred term length.

In step 1112, a component of system 100 (e.g., client device 190 orsystem 105) can display (or transmit for display on the client device190) the real-time quote. In some embodiments, the user may manipulatedifferent factors to determine how the quote is affected. For example,the user may add, remove, or make changes to a service contract, gapinsurance, or down payment to determine the effect on payment options,APR, and/or monthly payments relating to the quote.

FIG. 12 is a flowchart of another exemplary method 1200 for generating areal-time quote for a vehicle, according to disclosed embodiments. Insome embodiments, method 1200 may be carried out by one or morecomponents of system 100 (e.g., client device 190 or system 105). Insome aspects, method 1200 can proceed similarly to the methods describedabove with regards to FIGS. 4, 5A, and 8.

In some embodiments, steps 1202-1206 may proceed as described above withregards to steps 1102-1106 of FIG. 11. For example, in step 1102, acomponent of system 100 (e.g., client device 190 or system 105) canreceive an image of a vehicle from image sensor 220. In someembodiments, this image may then be transmitted to from client device190 to image recognizer 110 through network 170. In step 1204, thecomponent can extract one or more features from the image (e.g., asdescribed with regards to FIGS. 5A and 6). In step 1206, the componentmay determine attributes of the vehicle (e.g., make and model) based onthe extracted features and using a machine learning algorithm (e.g., asdescribed with regards to FIGS. 5A and 6).

In some embodiments, steps 1208-1212 may proceed in a manner similar tothat described above with regards to steps 1010-1014 of FIG. 10. Forexample, in step 1208, a component of system 100 (e.g., client device190 or system 105) can obtain comparison information based at least inpart on the attributes determined in step 1106. In some embodiments, thecomponent can be configured to obtain comparison information fromcomparison resource 107. In some aspects, the component can beconfigured to retrieve pricing information from comparison resource 107based on at least one of vehicle-related information and personalinformation. For example, the component may retrieve pricing informationfor vehicles having the same or similar attributes as those determined.Further, as described above in relation to FIG. 5, in some embodimentsthe component may be configured to receive at least some userinformation from the user (e.g., via client device 190), and/or retrievesuch information from a user account (e.g., a user account of system105). In such embodiments, the component may be configured to retrievepricing information for vehicles having the same or similar attributesas those determined in step 1206 that were purchased or leased byindividuals similar to the user. The similarity of the individuals tothe user can be determined based on the received user information andthe personal information stored by comparison resource 107. In thismanner, as described above with regards to step 1010, the obtainedsubset of comparison information can be defined by recency, geography,or personal characteristics of the users leasing or purchasing thesimilar or matching vehicles

In step 1210, a component of system 100 (e.g., client device 190 orsystem 105) can estimate a quote for the vehicle based on specificvehicle information and the comparison information obtained at step 1208(e.g., as described with regards to FIG. 8). Step 1210 may be performedin a manner similar to that described above in relation to step 1012.For example, the estimated quotes may be specific to particularfinancing options such as auto purchase loans of different durationsand/or auto lease arrangements of different durations, and may leveragestatistics of the retrieved pricing information. As described above instep 1012, in some embodiments, the component can be configured toestimate one or more quotes in response to input received from clientdevice 190.

In step 1212, a component of system 100 (e.g., client device 190 orsystem 105) can display (or transmit for display on the client device190) one or more quotes. Step 1212 may be performed in a manner similarto that described above in relation to step 1014. For example, as above,the one or more estimated quotes may be transmitted via network 170 andmay be displayed on a user interface of client device 190. In someembodiments, the user interface may provide an augmented reality (AR)display.

FIG. 13 depicts an illustration of an exemplary client device capturingan image of a vehicle, in accordance with disclosed embodiments. Asdisclosed above, the client device 190 may be a mobile device, a tablet,a laptop, a cellular device, a personal computer, a smartphone (e.g.,Apple iPhone, Blackberry, Android-based phones, etc.), and/or a wearablesmart device such as a smart watch. The client device 190 may include animage sensor 220 such as a camera. A user of the client device maycapture an image of a vehicle 1302 using image sensor 220 of clientdevice 190. The vehicle image may be displayed on a user interface 1304of the client device display.

FIG. 14 depicts a group of exemplary graphical user interfaces capturingvehicle images, according with disclosed embodiments. In someembodiments, the exemplary graphical user interfaces may be displayed onclient device 190 and may take the image from image sensor 220 andmodify it to include elements displayed in a user interface on clientdevice 190. In some embodiments, the exemplary graphical user interfacesmay be displayed when a user opens an application running on clientdevice 190, activating the image sensor 220.

Graphical user interface 1401 shows an interface with a vehicle within arectangular guide 1403, a picture guide 1404, and a displayed message1402. Rectangular guide 1403 may have color selected to highly contrastthe original image. Similarly, picture guide 1404 may be generated whenserver system 105 determines that the picture quality is poor and cannotbe processed. In some embodiments, picture guide 1404 may be displayedwhen server system 105 determines that the captured image is below anacceptability threshold and displays an error message and/or a messageinstructing the user to capture another image of the vehicle in a betterposition so the image can be accepted.

While graphical user interface shows a guide 1404 and message 1402 inthe bottom, the guide and message may also be on the top like guide 1413and message 1412, or also in the side, like guide 1422, or anycombination, such as the guide 1422 on the side with message 1423 on thetop. Therefore graphical user interfaces 1411 and 1421 show alternativegraphical user interfaces with similar elements arranged in differentpositions. Server system 105 can be configured to select the position ofelements in the graphical user interface to facilitate interactions withthe user.

In other embodiments, the exemplary graphical user interfaces can modifyan image of a vehicle including a first guide 1435 and a second guide1434. For example, graphical user interface 1431 presents the side ofthe vehicle and a displayed message 1432 to position the front and backof the vehicle between the first guide 1435 and second guide 1434.

FIG. 15 is an exemplary flow chart illustrating an identificationprocess, in accordance with disclosed embodiments. In some embodiments,identification process 1500 may be executed by server system 105.

Server system 105 may receive a plurality of images to generate anattribute identification function in step 1502. These images may becollected by image classifier 130. In some aspects these images may bescraped from, for example, websites and/or inventories of vehicledealers or vehicle manufacturers. The collected images may be associatedwith metadata describing the type of image and whether the image isexterior or interior.

In step 1504, server system 105 may categorize images into at least twoclusters. For example, server system 105 may extract features fromimages and cluster the images based on the extracted features in abinary fashion, that is, into two clusters. For example, imageclassifier 130 may implement clustering techniques, such as DBSCAN, toclassify images. In some embodiments, this classification may clusterimages of vehicle interiors and images of vehicle exteriors into twodifferent clusters. In some embodiments, server system 105 may eliminateimages that cannot be classified.

In step 1505, server system 105 may modify metadata associated withimages based on their classification in step 1504. For example, imageclassifier 130 may insert comments like “exterior” or “interior” in themetadata associated with images based on the clustering. In someembodiments, image classifier 130 may implement a convention that laterfacilitates sorting the labeled images. For instance, instead of addingnotes to the metadata such as “interior” and “exterior,” the file nameof the images may be changed with a convention such as “1” for interiorand “0” for exterior.

In step 1506, server system 105 may determine a classification functionfor the clustered images. For example, image classifier 130 may generatea logistic regression classifier based on image features and the labelscreated in step 1505. In some embodiments, the classification may bebinary, and the linear regression may be configured to categorize imagesinto one of the two clusters. For example, the classification functionmay classify images of vehicle exteriors into a “vehicle exterior”cluster. As an additional example, the classifier may classify vehicleinteriors into another cluster. In some embodiments, this other clustermay include all images not classified as a vehicle exterior (e.g.,images of vehicle interiors, images of subject matter other thanvehicles, etc.).

In step 1508, server system 105 may receive a second group of images andclassify them using the classification function determined in step 1506.For example, a logistic regression classifier determined in step 1506may be used to classify the second group of images. In some embodiments,the second group of images may include associated metadata. For example,the metadata of the second group of images may include information aboutattributes of the vehicle such as vehicle make, model, and/or trim. Insome embodiments, server system 105 may classify the second group ofimages as images of vehicle interior or vehicle exterior based on theclassification function. In such embodiments, server system 105 may usethe images classified as vehicle exterior for training a machinelearning algorithm. By using the images classified as vehicle exteriorto generate a model, server system 105 can reduce the resources devotedfor image preprocessing and improve model generation speed.

In step 1510, server system 105 may extract features from labeledimages. For example, image classifier 130 may apply a pre-trainedconvolution network to extract features from the labeled images, whichmay comprise images from the second group labeled with vehicle“exterior” (that is, images classified as exterior by the classificationfunction).

In step 1512, server system 105 may categorize the labeled images basedon one or more vehicle attributes (e.g., vehicle make, model, year, andtrim). Furthermore, in step 1512 server system 105 may generate a newfile with categorized images. For example, server system 105 maygenerate one or more files indicating the categories of the images. As anon-limiting example, the one or more files can include one or morebinary tables. These binary tables can include images as rows (orcolumns) and categories as columns (or rows). In this non-limitingexample, membership of images in categories can be indicated by thevalues of the element at the tables.

In step 1514, based on the categorized images, server system 105 maygenerate an attribute function, consistent with disclosed embodiments.The attribute function can be configured to use features extracted froman image of the exterior of a vehicle to identify attributes of thevehicle. For example, the attribute function can be configured toidentify the make and model of the depicted vehicle. As an additionalexample, the attribute function can be configured to further identifythe trim and/or year of the depicted vehicle.

The attribute function may comprise one or more layers in aconvolutional neural network that also extracts the features from theimage. Alternatively, the attribute function may comprise a secondconvolutional distinct neural network configured to receive the output(or the output of a particular middle layer) of a first convolutionalneural network that extracts the features from the image.

In step 1514 server system 105 may, in some embodiments, determine theattribute identification function using training images and a resultfile. Server system 105 may partition the categorized images of step1512 into at least training images and validation images. Server system105 can train the attribute function using an input file includingextracted features for the training images and a result file includingthe binary table entries for the training images. Training can includedetermining or adjusting parameters of the attribute identificationfunction. For example, when the attribute identification functionincludes a neural network, training can include updating weights andoffsets of the neural network using to a backpropagation algorithm.Server system 105 can train the attribute function until a cost functionbased on prediction error is below a threshold value. Server system 105can validate the attribute identification function using the validationimages.

In step 1516, a component of system 100 (e.g., system 105 or clientdevice 190) may use the attribute function determined in step 1514 toidentify at least one attribute associated with a first image receivedfrom client device 190 (e.g., as described above with regard to FIG. 6).In some embodiments, server system 105 may receive an image or a videofeed from client device 190. In such embodiments, server system mayidentify attributes from the images using the attribute identificationfunction. For example, server system 105 may receive an image of avehicle or a video feed showing a vehicle from client device 190. Serversystem 105 may then extract features from the image, using for example,image recognizer 110 (or a convolutional neural network thereof) andinput the features to the attribute identification function (which maycomprise an output layer of the convolutional neural network or aseparate neural network). The attribute identification function may thenreturn attributes of the vehicle in the image such as the vehicle's makeand model.

In some embodiments, once attributes of the image are identified in step1516, server system 105 may retrieve additional information. Forexample, using the identified information, server system 105 may searchin database 180 for information relating to the identified vehicle giventhe identified attributes, including price information. In otherembodiments, server system 105 may search for cost and conditioninformation in online resource 106 For example, server system 105 maysend an information query to websites such as Kelly Blue Book® tocollect cost and condition information. In yet other embodiments, serversystem 105 may send queries to dealer or vehicle manufacturer websitesto collect additional information of the vehicle.

FIG. 16 is an exemplary flow chart illustrating a training data setgeneration process, in accordance with disclosed embodiments. In someembodiments generation process 1600 may be carried out by server system105. In such embodiments, generation process 1600 may be carried out byimage classifier 130.

In step 1602, server system 105 may initiate an image collection tool.In some embodiments, the image collection tool may be a web scraperconfigured to collect images from websites. In other embodiments,collection tool may include a file synchronization tool that isconnected to, for example, online resource 106. In such embodiment, theimage collection tool may copy image files in a memory such as memory160.

In step 1604, server system 105 may receive a plurality of images. Instep 1604, server system 105 may compress images or create a new file toefficiently store the plurality of collected images. For example, instep 1604 server system 105 may store images in a new file in thatreduces the color space to the most common colors in the image.Alternatively, server system 105 may modify pixels in the image so theyonly reference an index color, or to combine pixels with dithering.Other compression techniques to generate new files are also possibleonce the plurality of images is received in step 1604.

In some embodiments, the newly generated file at step 1604 may changebrightness by averaging or dropping some of the chrominance informationin the image. In yet other embodiments, the new file may be generated byemploying a Fourier-related transform such as the Discrete CosineTransform (DCT), wavelet transform, or Fractal compression to generate anew file that more efficiently store the collected images to generatethe models.

In step 1606, server system 105 may perform a preliminary search inmetadata associated with the collected images. For example, serversystem 105 may search for keywords in the metadata or search for XMLinformation. Because the number of collected images may be very large totrain the machine learning algorithm, performing a preliminary search,instead of a full search in the metadata, may save computer resourcesand accelerate the classification process.

In step 1610, server system 105 may determine whether the associatedmetadata includes a word of interest based on the preliminary search. Ifthe metadata does not include a word of interest (step 1610: No), serversystem 105 may continue to step 1612, classifying the image asunlabeled, and/or discarding it. If instead the metadata includes a wordof interest (step 1610: Yes), server system 105 may continue to step1614 and perform a second search for attributes in metadata. A “word ofinterest” may include any vehicle-related word such as “exterior,”“interior,” “car,” “vehicle,” “front view,” “side view,” “rear view,”“Ford,” “Honda,” “2006,” “2007,” “XL,” “4L,” “horsepower,” or the like.Such staggered search for metadata improves computer functionality byminimizing the resources that are used to classify images creating astratified approach that quickly identifies images that are not ofinterest and then devoting more resources to images that overcome aninitial threshold. Indeed, because the determination in step 1610 may beperformed with specialized computers, such as FPGAs, specificallyprogrammed to perform the keyword search in metadata, process 1600 mayimprove the overall speed of the server system 105.

In step 1620, server system 105 may determine whether the metadataincludes information about a classification of the vehicle and/orattributes of the vehicle. For example, in step 1620 server system 105may determine that the word “exterior” is in the comments section of themetadata associated with a group of images and determine that themetadata includes a classification. Similarly, server system 105 maydetermine that the word “Accord” is in the comments section of themetadata associated with a group of images and determine that themetadata includes an attribute (in this case, that the “model” attributehas the value “Accord”). Alternatively or additionally, server system105 may identify that the metadata has information about the imagesource (e.g., from “www.ford.com”) and correlate it to a vehicle makerattribute (e.g., a make of “Ford”).

If server system 105 determines the metadata does not include aclassification and/or attributes (step 1620: No), server system 105 maycontinue to step 1622 and classify the image as attribute-less. However,if server system 105 determines that the metadata includes aclassification and/or attributes (step 1620: yes), server system 105 maycontinue to step 1624 and classify the images in a labeled trained dataset that may later be used to generate a machine learning classifier,such as a convolutional neural network or a logistic regressionclassifier.

FIG. 17 is an exemplary flow chart illustrating a process for generatingan identification model, in accordance with disclosed embodiments.Process 1700 may be performed by server system 105 and configured togenerate classification models, such as convolutional neural networks,traditional neural networks, or logistic regression classifiers, toidentify images.

In step 1702, server system 105 may partition model data in a trainingdata set and a validation data set. For example, server system 105 mayreceive a plurality of images of the exterior of vehicles. The imagesmay be associated with metadata describing attributes of the vehicle inthe image. Server system 105 may divide the images of the exterior ofthe vehicles and generate two groups, one to train the model and asecond to validate the model.

In step 1704, server system 105 may generate an input array based onfeatures of the training data set. For example, server system 105 maygenerate a variable comprising feature information of images in thetraining data set. For example, the feature information for an image maybe extracted from the image using a first convolutional neural network.

In step 1706, server system 105 may generate output vectors based onmetadata of the training data set. For example, based on the images inthe training data set, the server system may generate a desired outputvector identifying vehicle make and model that is included in thetraining data set.

In step 1708, server system 105 may determine one or more parameters(e.g., weights) and/or activation functions to initialize the model tobe created. For example, server system 105 may receive, from a trainer,the initializing values as well as a number of layers and nodes, andwhether the network will be fully or partially connected. Alternatively,server system 105 may determine the initializing values for a number oflayers and nodes that were previously determined by the trainer. In anyof the embodiments above, the trainer may also have determined thedimensionality of the network and/or a pixel sampling size.

Moreover, in step 1708 server system 105 may receive, from a trainer, anindication of one or more activation functions for use in the model. Forexample, server system 105 may receive, from a trainer, an indication ofthat the model should use sigmoidal activation functions. Moreover, instep 1710 server system 105 may receive, from a trainer, initial valuesor an indication of initial values for parameters (e.g., weights,offsets, etc.) of the model.

In step 1712, server system 105 may apply the input array based onfeatures of training data set of step 1704 to calculate an estimatedoutput in step 1714 and a cost function. In step 1720, server system 105may determine whether the cost function is below a threshold of requiredaccuracy, which may be specified by the user. If server system 105determines that the cost function is not below a threshold and therequired accuracy has not been achieved, server system 105 may continueto step 1722 and determine a gradient to modify weights in synapsisand/or modify the activation functions in the different nodes. However,if the cost function if below a threshold (step 1720: yes), serversystem 105 may accept the model in step 1724.

FIG. 18 is an exemplary flow chart illustrating a process for handling arequest for identification (e.g., similar to the method described withrespect to FIG. 6). In some embodiments, process 1800 may be performedby a component of system 100 (e.g., server system 105 or client device190).

In step 1802, the component may receive an image or a video feed fromimage sensor 220 (or from client device 190). In other embodiments,server system 105 may receive the image or video from online resource106.

In step 1804, server system 105 may determine whether the image isacceptable for processing. For example, server system 105 may perform avalidity assessment of whether the contrast in the image is high enoughor whether the format of the image can be processed. In someembodiments, server system 105 may determine if the image displays afull vehicle by, for example, analyzing contrast in the image.

If the image is not acceptable for processing (step 1804: No), serversystem 105 may continue to step 1806 and return instructions to displayan error message in client device 190. In some embodiments, serversystem 105 may additionally return instructions to display an onscreenguide to help the user to take an acceptable image for processing. Forexample, server system 105 may generate an image to superimpose on theclient screen indicating an error and presenting a guide to take asubsequent image.

However, if the image is acceptable for processing (step 1804: yes),server system may continue to step 1808 and extract image features. Forexample image classifier 130 may import layers of a first convolutionalneural network; determine features described in a target layer of thefirst network, and initialize a multi class fitting model (e.g., asecond convolutional neural network) using the features in the targetlayer.

In step 1810, server system 105 may request an identification model toidentify attributes in the image. In some embodiments, image recognizer110 may use the identification model to identify attributes in theimage. For example, the convolutional neural network of step 1808 mayfurther include layers for determining a vehicle make and model.Alternatively or additionally, image recognizer 110 may apply a secondconvolutional neural network to determine a vehicle make and model fromthe features extracted by the first convolutional neural network. Instep 1812, the server system 105 may fully identify the vehicle based onthe determined make and model (and/or other determined attributes suchas year or trim).

The foregoing description has been presented for purposes ofillustration. It is not exhaustive and is not limited to precise formsor embodiments disclosed. Modifications and adaptations of theembodiments will be apparent from consideration of the specification andpractice of the disclosed embodiments. For example, the describedimplementations include hardware and software, but systems and methodsconsistent with the present disclosure can be implemented with hardwarealone. In addition, while certain components have been described asbeing coupled to one another, such components may be integrated with oneanother or distributed in any suitable fashion.

Moreover, while illustrative embodiments have been described herein, thescope includes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations and/or alterations based on the presentdisclosure. The elements in the claims are to be interpreted broadlybased on the language employed in the claims and not limited to examplesdescribed in the present specification or during the prosecution of theapplication, which examples are to be construed as nonexclusive.Further, the steps of the disclosed methods can be modified in anymanner, including reordering steps and/or inserting or deleting steps.

Instructions or operational steps stored by a computer-readable mediummay be in the form of computer programs, program modules, or codes. Asdescribed herein, computer programs, program modules, and code based onthe written description of this specification, such as those used by thecontroller, are readily within the purview of a software developer. Thecomputer programs, program modules, or code can be created using avariety of programming techniques. For example, they can be designed inor by means of Java, C, C++, assembly language, or any such programminglanguages. One or more of such programs, modules, or code can beintegrated into a device system or existing communications software. Theprograms, modules, or code can also be implemented or replicated asfirmware or circuit logic.

The features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended that the appendedclaims cover all systems and methods falling within the true spirit andscope of the disclosure. As used herein, the indefinite articles “a” and“an” mean “one or more.” Similarly, the use of a plural term does notnecessarily denote a plurality unless it is unambiguous in the givencontext. Words such as “and” or “or” mean “and/or” unless specificallydirected otherwise. Further, since numerous modifications and variationswill readily occur from studying the present disclosure, it is notdesired to limit the disclosure to the exact construction and operationillustrated and described, and accordingly, all suitable modificationsand equivalents may be resorted to, falling within the scope of thedisclosure.

Other embodiments will be apparent from consideration of thespecification and practice of the embodiments disclosed herein. It isintended that the specification and examples be considered as exampleonly, with a true scope and spirit of the disclosed embodiments beingindicated by the following claims.

1.-20. (canceled)
 21. An image processing system comprising: at leastone processor; and at least one storage medium containing instructionsthat, when executed by the at least one processor, cause the imageprocessing system to perform operations comprising: scraping websites toobtain vehicle exterior images and associated vehicle attributes;training a second convolutional neural network using the vehicleexterior images and associated vehicle attributes, the trainingcomprising: applying a vehicle exterior image to a first convolutionalneural network to obtain an input vector; applying the input vector tothe second convolutional neural network to generate an estimated outputvector; generating an actual output vector using a vehicle attributeassociated with the vehicle exterior image; updating the secondconvolutional neural network based on a comparison of the estimatedoutput vector and the actual output vector; and generating an estimatedquote based on a location of a client device of a user and a clientdevice image of a vehicle, generation comprising: selecting a vehicledatabase using the location; applying the client device image to thefirst convolutional neural network to generate client device imagefeatures; applying the client device image features to the secondconvolutional neural network to generate client device image attributes;obtaining vehicle information from the vehicle database using the clientdevice image attributes; obtaining comparison information based at leastin part on the vehicle information; and estimating a quote for thevehicle based on the comparison information.
 22. The system of claim 21,wherein the vehicle database lists vehicles available at a dealershiplocated at the location of the client device.
 23. The system of claim21, wherein the operations further comprise: transmitting errorinformation for display on the client device, the error informationincluding an error message or a guiding line for obtaining the clientdevice image of the vehicle; and determining that the client deviceimage exceeds a comparison acceptability threshold.
 24. The system ofclaim 21, wherein obtaining the comparison information further comprisesretrieving pricing information from a comparison resource based at leastin part on the vehicle information.
 25. The system of claim 24, whereinthe comparison resource is distinct from the image processing system.26. The system of claim 24, wherein the pricing information is retrievedusing personal information of the user.
 27. The system of claim 24,wherein estimating the quote for the vehicle comprises calculatingstatistics of the pricing information.
 28. The system of claim 27,wherein estimating the quote for the vehicle comprises receivingselections or modifications of financing terms and calculating thestatistics of the pricing information based on the received selectionsor modifications of the financing terms.
 29. The system of claim 21,wherein obtaining the vehicle information from the vehicle databaseusing the client device image attributes includes: retrieving recordsfrom the vehicle database using the client device image attributes, therecords including database images; applying the database images to thefirst convolutional neural network to generate database image features;and identifying database images satisfying a matching criterion bycomparing the client device image and the database images using theclient device image features and the database image features.
 30. Thesystem of claim 29, wherein the records include database attributesmatching a first subset of the client device image attributes.
 31. Thesystem of claim 30, wherein obtaining the vehicle information from thevehicle database using the client device image attributes furtherincludes updating a second subset of the client device image attributesusing the database attributes.
 32. The system of claim 29, whereinobtaining the vehicle information from the vehicle database using theclient device image attributes further includes: transmitting theidentified database images to a user interface of the client device;receiving an indication of a matching one of the identified databaseimages; and updating a subset of the client device image attributesusing attributes associated with the one of the identified databaseimages.
 33. A computer-implemented method for processing an imageincluding a vehicle, the method comprising: scraping websites to obtainvehicle exterior images and associated vehicle attributes; training asecond convolutional neural network using the vehicle exterior imagesand associated vehicle attributes, the training comprising: applying avehicle exterior image to a first convolutional neural network to obtainan input vector; applying the input vector to the second convolutionalneural network to generate an estimated output vector; generating anactual output vector using a vehicle attribute associated with thevehicle exterior image; updating the second convolutional neural networkbased on a comparison of the estimated output vector and the actualoutput vector; and generating an estimated quote based on a location ofa client device of a user and a client device image of a vehicle, thegenerating comprising: selecting a vehicle database using the location;applying the client device image to the first convolutional neuralnetwork to generate client device image features; applying the clientdevice image features to the second convolutional neural network togenerate client device image attributes; obtaining vehicle informationfrom the vehicle database using the client device image attributes;obtaining comparison information based at least in part on the vehicleinformation; and estimating a quote for the vehicle based on thecomparison information.
 34. The method of claim 33, wherein scraping thewebsites to obtain the vehicle exterior images and associated vehicleattributes includes: scraping images and associated metadata fromwebsites; selecting images using the associated metadata; andclassifying a subset of the selected images as the vehicle exteriorimages.
 35. The method of claim 34, wherein the classification uses alogistic regression classifier.
 36. The method of claim 35, the methodfurther including: applying the scraped images to the firstconvolutional neural network to generate scraped image features;clustering the scraped image features to generate a vehicle exteriorcluster; and training the logistic regression classifier using thevehicle exterior cluster.
 37. The method of claim 33, wherein obtainingthe vehicle information from the vehicle database using the clientdevice image attributes includes: retrieving records from the vehicledatabase, the records including database images and database attributesmatching a first subset of the client device image attributes; applyingthe database images to the first convolutional neural network togenerate database image features; identifying database images satisfyinga matching criterion by comparing the client device image and thedatabase images using the client device image features and the databaseimage features; and updating a second subset of the client device imageattributes using the database attributes.
 38. The method of claim 37,wherein the first subset of the client device image attributes includesmake and model.
 39. The method of claim 37, wherein the second subset ofthe client device image attributes includes trim and year.
 40. An imageprocessing system comprising: at least one processor; and at least onestorage medium containing instructions that, when executed by the atleast one processor, cause the image processing system to performoperations comprising: scraping websites to obtain vehicle exteriorimages and associated vehicle attributes, scraping comprising: scrapingimages and associated metadata from websites; selecting images using theassociated metadata; and classifying a subset of the selected images asthe vehicle exterior images using a logistic regression classifier;training a second convolutional neural network using the vehicleexterior images and associated vehicle attributes, the trainingcomprising: applying a vehicle exterior image to a first convolutionalneural network to obtain an input vector; applying the input vector tothe second convolutional neural network to generate an estimated outputvector; generating an actual output vector using a vehicle attributeassociated with the vehicle exterior image; updating the secondconvolutional neural network based on a comparison of the estimatedoutput vector and the actual output vector; and generating an estimatedquote based on a location of a client device of a user and a clientdevice image of a vehicle, generation comprising: selecting a vehicledatabase including database images using the location; applying thedatabase images to the first convolutional neural network to generatedatabase image features; applying the client device image to the firstconvolutional neural network to generate client device image features;obtaining vehicle information from the vehicle database by comparing theclient device image features and the database image features; obtainingcomparison information based at least in part on the vehicleinformation; and estimating a quote for the vehicle based on thecomparison information.